"""
1.什么是进程
    程序在操作系统内运行，即成为一个运行进程

2.什么是线程
    进程内部可以有多个线程，程序的运行本质上就是由进程内部的线程在实际工作的

3.什么是并行执行
    多个进程同时在运行，即不同的程序同时运行，称之为：多任务并行执行
    一个进程内的多个线程同时在运行，称之为：多线程并行执行

注意点：
    进程之间是内存隔离的， 即不同的进程拥有各自的内存空间。 这就类似于不同的公司拥有不同的办公场所
    线程之间是内存共享的，线程是属于进程的，一个进程内的多个线程之间是共享这个进程所拥有的内存空间的

Python的多线程可以通过threading模块来实现：
    thread_obj = threading.Thread(target=func)  创建线程对象
    thread_obj.start() 启动线程执行

需要传参的话可以通过：
    args参数通过元组（按参数顺序）的方式传参
    或使用kwargs参数用字典的形式传参

import threading
thread_obj = threading.Thread([group [, target [，name [, args [，kwargs]]]]])- group:暂时无用，未来功能的预留参数
    - target:执行的目标任务名
    - args:以元组的方式给执行任务传参
    - kwargs:以字典方式给执行任务传参
    - name:线程名，一般不用设置
启动线程，让线程开始工作：
    thread_obj.start()

"""
import time
import threading


def sing(msg):
    while True:
        print(msg)
        time.sleep(1)


def dance(msg):
    while True:
        print(msg)
        time.sleep(1)


if __name__ == '__main__':
    # 创建一个唱歌的线程
    sing_thread = threading.Thread(target=sing, args=("我要唱歌 哈哈哈",))
    # 创建一个跳舞的线程
    dance_thread = threading.Thread(target=dance, kwargs={"msg": "我在跳舞哦 啦啦啦"})

    # 让线程去干活吧
    sing_thread.start()
    dance_thread.start()
